// PM2 配置文件 - 常用命令说明
// 启动命令: 
//   - 开发环境: pm2 start ecosystem.config.js --env development 或 npm run pm2:dev
//   - 生产环境: pm2 start ecosystem.config.js --env production 或 npm run pm2:prod
// 管理命令:
//   - 查看进程列表: pm2 list
//   - 停止所有进程: pm2 delete all 或 npm run pm2:delete
//   - 重启所有进程: pm2 restart all
//   - 查看日志: pm2 logs
//   - 查看特定进程日志: pm2 logs node-express-mysql
//   - 监控进程: pm2 monit
//   - 保存当前进程列表: pm2 save
//   - 设置开机自启: pm2 startup

module.exports = {
  apps: [
    {
      // 基础配置
      name: 'node-express-mysql',
      script: 'index.js',
      
      // 核心模式配置 - 保持简单明确
      exec_mode: 'fork',
      instances: 1,
      node_args: '--inspect=9229', // 启用浏览器调试端口
      
      // 默认环境
      env: {
        NODE_ENV: 'development',
        PORT: 8888
      },
      
      // 开发环境特定配置
      env_development: {
        NODE_ENV: 'development',
        PORT: 8888,
        watch: true, // 开启监听模式
        ignore_watch: ['node_modules', 'public', 'logs', '*.log'],
        // 关闭PM2日志捕获，避免与应用日志系统重复
        error_file: '/dev/null',
        out_file: '/dev/null',
        merge_logs: false,
        // 仅捕获错误，不捕获标准输出
        output_capture: 'error',
        LOG_LEVEL: 'DEBUG'
      },
      
      // 生产环境特定配置
      env_production: {
        NODE_ENV: 'production',
        PORT: 8888,
        watch: false,
        instances: 'max',
        exec_mode: 'cluster',
        merge_logs: true,
        // 关闭PM2日志捕获，避免与应用日志系统重复
        error_file: '/dev/null',
        out_file: '/dev/null',
        // 仅捕获错误，不捕获标准输出
        output_capture: 'error',
        LOG_LEVEL: 'INFO'
      }
    }
  ]
};